package com.puzzlebazar.client.main.control;

import com.puzzlebazar.client.util.Releasable;

public interface State extends Releasable {

	/**
	 * Steps to perform when entering this state
	 */
	public void enter();

	/**
	 * Steps to perform when exiting this state
	 */
	public void exit();

	/**
	 * Check if the system is allowed to enter the given state
	 * 
	 * @return True if the state can be entered, false otherwise
	 */
	public boolean canEnter();

}
